.timer-loader,
.timer-loader-reverse {
  --clock-color: black;
  --clock-width: 1.3rem;
  --clock-radius: calc(var(--clock-width) / 2);
  --clock-minute-length: calc(var(--clock-width) * 0.45);
  --clock-hour-length: calc(var(--clock-width) * 0.35);
  --clock-thickness: 0.2rem;

  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: var(--clock-width);
  height: var(--clock-width);
  border: 3px solid var(--clock-color);
  border-radius: 50%;
}

.timer-loader::before,
.timer-loader::after {
  position: absolute;
  content: "";
  top: calc(var(--clock-radius) * 0.25);
  width: var(--clock-thickness);
  background: var(--clock-color);
  border-radius: 10px;
  transform-origin: center calc(100% - calc(var(--clock-thickness) / 2));
  animation: timer-spin infinite linear;
}

.timer-loader-reverse::before,
.timer-loader-reverse::after {
  position: absolute;
  content: "";
  top: calc(var(--clock-radius) * 0.25);
  width: var(--clock-thickness);
  background: var(--clock-color);
  border-radius: 10px;
  transform-origin: center calc(100% - calc(var(--clock-thickness) / 2));
  animation: timer-spin-reverse infinite linear;
}

.timer-loader::before {
  height: var(--clock-minute-length);
  animation-duration: 6s;
}

.timer-loader::after {
  top: calc(var(--clock-radius) * -0.25 + var(--clock-hour-length));
  height: var(--clock-hour-length);
  animation-duration: 45s;
}

.timer-loader-reverse::before {
  height: var(--clock-minute-length);
  animation-duration: 2s;
}

.timer-loader-reverse::after {
  top: calc(var(--clock-radius) * -0.25 + var(--clock-hour-length));
  height: var(--clock-hour-length);
  animation-duration: 15s;
}

@keyframes timer-spin-reverse {
  to {
    transform: rotate(-1turn);
  }
}

@keyframes timer-spin {
  to {
    transform: rotate(1turn);
  }
}
